/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.bean.BeanArchivo;
import model.bean.BeanUsuario;
import model.bean.BeanValoracion;
import model.daobase.DBase;

/**
 *
 * @author Andres
 */
public class DaoValoracion extends DBase {
    
    public void insertValoracion(BeanValoracion valoracion) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;

        try {

            String query = "INSERT into valoracion(idarchivo, valor) values("+
                            valoracion.getArchivo().getIdarchivo() +"," +
                            valoracion.getValor()+")";
                            
            pstmt = conn.prepareStatement(query);
            pstmt.executeUpdate();            
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

    }
     
     
   public Double get(int id) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        double prom=0;
       

        try {

            String query = "SELECT AVG(valor) from valoracion WHERE idarchivo="+id;
            
            pstmt = (PreparedStatement) conn.prepareStatement(query);
            res = pstmt.executeQuery();
           while (res.next()) {
               
            prom=res.getDouble(1);
     
           }
        
           res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return prom;

    } 
    
    
   public ArrayList<BeanValoracion> listvalorados() {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        ArrayList<BeanValoracion> list = new ArrayList<BeanValoracion>();
        int i = 0;
       

        try {

            String query = "SELECT idarchivo, AVG(valor) AS promedio"+
                    " FROM valoracion"+
                    " GROUP BY idarchivo"+
                    " ORDER BY promedio DESC";
            
            pstmt = (PreparedStatement) conn.prepareStatement(query);
            res = pstmt.executeQuery();
           while (res.next()) {
               
            BeanValoracion valoracion = new BeanValoracion();
            DaoArchivo daoArchivo = new DaoArchivo();
            BeanArchivo archivo = new BeanArchivo();
            archivo.setIdarchivo(res.getInt(1));
            archivo.setNombre(daoArchivo.get(archivo.getIdarchivo()).getNombre());
            valoracion.setArchivo(archivo);
            valoracion.setValor(res.getDouble(2));
            list.add(valoracion);
            i++;
            if(i >=3){
                break;
            }
     
           }
        
           res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return list;

    } 
   
   
    
}
